package com.iman.manjusri.service.share;

import java.util.List;
import java.util.Map;

import com.iman.common.support.Page;
import com.iman.manjusri.vo.share.ShareExpertVo;
import com.iman.manjusri.vo.share.StudyResourceVo;

public interface StudyResourceService {
	/**
	 * 分页查询最新文件
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public Page<StudyResourceVo> newestResourceList(int pageNum,int pageSize);
	/**
	 * 分页查询最热文件
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public Page<StudyResourceVo> hotestResourceList(int pageNum,int pageSize);
	/**
	 * 分页查询下载排行文件
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public Page<StudyResourceVo> downRankResourceList(int pageNum,int pageSize);
	
	/**
	 * 根据tagid获取资源列表
	 * @param pageNum
	 * @param pageSize
	 * @param tagid
	 * @return
	 */
	public Page<StudyResourceVo> resourceListByTagId(int pageNum,int pageSize,Map<String, Object> model);
	/**
	 * 案例分享达人
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public Page<ShareExpertVo> shareExpertList(int pageNum,int pageSize);
	/**
	 * 获取资源文件详情
	 * @param file_id
	 * @return
	 */
	public StudyResourceVo resourceDetail(long file_id);
	/**
	 * 资源信息
	 * @param resource_id
	 * @return
	 */
	public StudyResourceVo resourceSimpleDetail(long resource_id);
	/**
	 * 浏览量+1
	 * @param resource_id
	 * @return
	 */
	public int incrViewCnt(long resource_id);
	/**
	 * 最近下载过此资源的人
	 * @param resource_id
	 * @param index
	 * @param limit
	 * @return
	 */
	public List<ShareExpertVo> downUserList(long resource_id,int index,int limit);
	/**
	 * 获取用户积分信息
	 * @param user_id
	 * @return
	 */
	public ShareExpertVo userIntegral(long user_id);
	/**
	 * 评论人的头像
	 * @param user_id
	 * @return
	 */
	public ShareExpertVo commentUserHead(long user_id);
	/**
	 * 下载量+1
	 * @param resource_id
	 * @return
	 */
	public int incrDownCnt(long resource_id);
	/**
	 * 记录下载历史
	 * @param user_id
	 * @param resource_id
	 * @param integral
	 */
	public int recordDown(long resource_id,long user_id,int integral);
	/**
	 * 减去下载积分
	 * @param user_id
	 * @param integral
	 * @return
	 */
	public int reduceDownIntegral(long user_id,int integral);
}
